package site.beanyon.now.mapper;

import site.beanyon.now.model.po.TimePlanPO;

import java.util.List;

/**
 * 时间计划ORM接口
 */
public interface TimePlanMapper {
    /**
     * 向数据库插入时间计划
     *
     * @param timePlanPO 时间计划持久化对象
     */
    void insertTimePlan(TimePlanPO timePlanPO);

    /**
     * 从数据库中删除时间计划
     *
     * @param timePlanId 时间计划id
     * @return 受影响的行数
     */
    Integer deleteTimePlan(Integer timePlanId);


    /**
     * 查询时间计划列表，包括每日计划和明日计划
     *
     * @param userId 用户id
     * @return 时间计划DTO列表
     */
    List<TimePlanPO> listTimePlan(Integer userId);

    /**
     * 查询用户的时间计划中的Activity列表
     *
     * @param userId 用户id
     * @return 用户的时间计划中的Activity列表
     */
    List<String> listTimePlanActivity(Integer userId);

    /**
     * 更新时间计划的状态
     *
     * @param timePlanId 时间计划id
     * @return 受影响的行数
     */
    Integer updateTimePlanStatus(Integer timePlanId);
}
